package cn.dlc.com.base;

/**
 * @author 邓立川
 * @date 2021/3/12 21:31
 * @desc 数组反转
 */
public class Demo6 {

    public static void main(String[] args) {
        // 直接反转
        int[] arr = {1,2,3,4,5,6,7,8};
        reverse1(arr);
    }

    // 方案1：直接反转
    private static int[] reverse1(int[] arr){
        // 4个字节开销
        int n = arr.length;
        // 4个字节开销
        int temp ;

        for(int start = 0,end=n-1; start<=end; start++,end--){
            temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
        return arr;
    }

    // 方案2：通过数组反转
    private static int[] reverse2(int[] arr){
        // 4个字节开销
        int n = arr.length;
        // 申请n*4个字节+数组自身头信息开销24个字节
        int[] temp = new int[arr.length];
        for(int i = 0 ; i < arr.length ; i++) {
            temp[i] = arr[i];
        }
        return arr;
    }
}
